//
// Created by wxd on 2025/7/11.
// 引擎全局的数据字节获取
//

#pragma once
#include "../thirdParty/include/glm/glm.hpp"

namespace EngineDataProp{
    // 基础数据类型size
#define _SHORT_SIZE sizeof(short
#define _UINT_SIZE sizeof(unsigned int)
#define _INT_SIZE sizeof(int)
#define _FLOAT_SIZE sizeof(float)
#define _DOUBLE_SIZE sizeof(double)
#define _LONG_SIZE sizeof(long)

    // 向量数据类型：向量 + 矩阵
#define _VEC2_SIZE sizeof(glm::vec2)
#define _VEC3_SIZE sizeof(glm::vec3)
#define _VEC4_SIZE sizeof(glm::vec4)
#define _MAT2_SIZE sizeof(glm::mat2)
#define _MAT3_SIZE sizeof(glm::mat3)
#define _MAT4_SIZE sizeof(glm::mat4)
}

namespace EngineVectorProp{
    // 分量
#define COMPONENT2 2
#define COMPONENT3 3
#define COMPONENT4 4
}

#define fSize(n) n * _FLOAT_SIZE
#define intSize(n) n * _INT_SIZE
#define uintSize(n) n * _UINT_SIZE
